--- title: "8、回文日期" created: 2025-11-28 tags: - 算法 --- # 8、回文日期 ## 题目 [回文日期](https://www.lanqiao.cn/paper/3836/problem/348/) ![[image-84100f82.png]] ## 思路分析 确定前半部分 即可确定后半部分 所以可以枚举年份 构造日期 再检查这个日期是否合法 其一 是日期 其二 在时间范围内 ## 代码实现 ```cpp #include using namespace std; int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; bool is_leap(int y){ return y%100 && y%4==0 || y%400==0; } int getdays(int y,int m){ return days[m]+(m==2 && is_leap(y)); } bool checkdate(int y,int m,int d){ if(m<1 || m>12) return false; if(d<1 || d>getdays(y,m)) return false; return true; } int main() { int sty,stm,std,edy,edm,edd; scanf("%04d%02d%02d",&sty,&stm,&std); scanf("%04d%02d%02d",&edy,&edm,&edd); int startdate=sty*10000+stm*100+std; int enddate=edy*10000+edm*100+edd; // cout<=startdate && curdate<=enddate) cnt++; } } cout<